/*
 * main.cpp
 *
 *  Created on: Jul 10, 2013
 *      Author: alexandru
 */

#include <iostream>
#include "stn/samples.h";

using namespace std;

void scanLetters(string input);
			//cout << root.getByName("boolean").getJsonValue() << endl;
			//cout << root.getByName("intProp").getJsonValue() << endl;



			//cout << root.toJson() << endl;

void scanWord(string input){



	Object root("root");

	Object * charObj=new Object("charName", "charVal");
	Object boolObj("boolean", true);
	Object intObj("intProp", 4);

	root.push(charObj);
	root.addObject(boolObj);
	root.addObject(intObj);


	//cout << root.getByName("charName.otherObject").getJsonValue() << endl;






	if(input=="SET"){
		cout << "setter" << endl;
	}

	if(input=="GET"){
			cout << "getter" << endl;
		}

	else{
		scanLetters(input);
	}

}

vector<char*> lista;
char *temp;

void scanLetter(char letter){
	//*temp=letter;

	if(letter=='.'){
		cout << "PUNCT" <<endl;

		//lista.push_back(temp);
	}else{
		//strcat(temp, temp);
	}
}


void scanLetters(string input){
	string s;
	stringstream ss;


//	for(std::string::iterator it = input.begin(); it != input.end(); ++it) {
//
//					char str[255];
//					cout << *it << endl;
//					ss << *it;
//
//					ss >> s;
//
//					if(*it=='.'){
//						cout << "punct" << endl;
//					}else{
//						strcat(str, *it);
//					}
//
//
//				}

	for(int i = 0; i < (int) input.length(); i++){


		cout << input[i] << endl;
		scanLetter(input[i]);
	    }
}




int main(){


	Object root("root");


	Object * charObj=new Object("charName", "charVal");

	Object bol("bol", true);
	Object num("num", 4);

	Object bol2("bol2", false);
	Object num2("num2", 5);

	Object bol3("bol2", false);
		Object num3("num3", 5);


	Object a("a");
	Object b("b");
	Object c("c");


a.push(charObj);//0
a.addObject(bol);//1
a.addObject(num);//2


b.addObject(bol2);//0
b.addObject(num2);//1

c.addObject(bol3);
c.addObject(num3);

b.addObject(c);//2

a.addObject(b);//3
//a.addObject(b);

//b.addObject(c);

root.setType(5);
	root.addObject(a);










//	Object result=root.getByName("a");
//	result.isRoot=true;
//
//	string command="a";

	jsc com;
	//cout << com.getJsonObject("[0]b.c[1]", root).getJsonValue() << endl;


//	getFromFile();


	Object newObj("sample");


	//newObj.setValue("[.,sadasd, {[[[]]]}[][]{}{}{}{}]");
	//newObj.setValue("{\"sample\":true, \"glossary\":{\"title\":\"exampleglossary\",\"GlossDiv\":{\"title\":\"S\",\"GlossList\":{\"GlossEntry\":{\"ID\":\"SGML\",\"SortAs\":\"SGML\",\"GlossTerm\":\"StandardGeneralizedMarkupLanguage\",\"Acronym\":\"SGML\",\"Abbrev\":\"ISO8879:1986\",\"GlossDef\":{\"para\":\"Ameta-markuplanguage,usedtocreatemarkuplanguagessuchasDocBook.\",\"GlossSeeAlso\":[\"GML\",\"XML\"]},\"GlossSee\":\"markup\"}}}}}");

	newObj.setValue("{\"str\":\"string\", \"object\": {\"char\":\"name\", \"arr\":[1, 2, 3, true, 5, {\"name\":\"name\"}]}}");
	//cout << newObj.getType() << endl;

	cout << newObj.toJson() << endl;
//	convertFromString("{"glossary": {
//        "title": "example glossary",
//		"GlossDiv": {
//            "title": "S",
//			"GlossList": {
//                "GlossEntry": {
//                    "ID": "SGML",
//					"SortAs": "SGML",
//					"GlossTerm": "Standard Generalized Markup Language",
//					"Acronym": "SGML",
//					"Abbrev": "ISO 8879:1986",
//					"GlossDef": {
//                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
//						"GlossSeeAlso": ["GML", "XML"]
//                    },
//					"GlossSee": "markup"
//                }
//            }
//        }
//    }
//}")

//	cout << root.getByName("a.b").getJsonValue() << endl;
	return 0;
}
